package com.zenithmind.document.pojo.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 文档版本VO
 * 
 * @author ZenithMind Team
 * @since 2025-01-09
 */
@Data
@Schema(description = "文档版本VO")
public class DocumentVersionVO {

    /**
     * 版本ID
     */
    @Schema(description = "版本ID")
    private String id;

    /**
     * 文档ID
     */
    @Schema(description = "文档ID")
    private String documentId;

    /**
     * 版本号
     */
    @Schema(description = "版本号")
    private String versionNumber;

    /**
     * 版本名称
     */
    @Schema(description = "版本名称")
    private String versionName;

    /**
     * 版本描述
     */
    @Schema(description = "版本描述")
    private String description;

    /**
     * 文件URL
     */
    @Schema(description = "文件URL")
    private String fileUrl;

    /**
     * 文件大小
     */
    @Schema(description = "文件大小")
    private Long fileSize;

    /**
     * 文件大小格式化
     */
    @Schema(description = "文件大小格式化")
    private String fileSizeFormatted;

    /**
     * 是否为当前版本
     */
    @Schema(description = "是否为当前版本")
    private Boolean isCurrent;

    /**
     * 变更类型
     */
    @Schema(description = "变更类型")
    private Integer changeType;

    /**
     * 变更类型名称
     */
    @Schema(description = "变更类型名称")
    private String changeTypeName;

    /**
     * 变更说明
     */
    @Schema(description = "变更说明")
    private String changeLog;

    /**
     * 创建者ID
     */
    @Schema(description = "创建者ID")
    private String creatorId;

    /**
     * 创建者名称
     */
    @Schema(description = "创建者名称")
    private String creatorName;

    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    private LocalDateTime createTime;

    /**
     * 是否可恢复
     */
    @Schema(description = "是否可恢复")
    private Boolean canRestore;

    /**
     * 是否可删除
     */
    @Schema(description = "是否可删除")
    private Boolean canDelete;
}
